package org.jeecg.modules.flowable.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.flowable.entity.TActFengFormEntity;
import org.jeecg.modules.flowable.service.bo.FengForm;

/**
 * Title:  <br>
 * Desc:  <br>
 * Date: 6/15/22 10:39 AM <br>
 * Company: 联通（辽宁）产业互联网有限公司 <br>
 *
 * @author zxd
 * @version 1.0.0
 */
public interface FormService {
    /**
     * 查询表单列表
     * @param argFormName
     * @param argFormKey
     * @param argFormType
     * @param argCurrPage
     * @param argPageSize
     * @return
     */
    public Page<FengForm> queryFormList(String argFormName, String argFormKey, String argFormType, Integer argCurrPage, Integer argPageSize);

    /**
     * 查询有效的表单列表
     * @param argFormName
     * @param argFormKey
     * @param argFormType
     * @param argCurrPage
     * @param argPageSize
     * @return
     */
    public Page<FengForm> queryEffectiveFormList(String argFormName, String argFormKey, String argFormType, Integer argCurrPage, Integer argPageSize);
    /**
     * 跟据表单KEY查询表单列表
     * @param argKey
     * @param argCurrPage
     * @param argPageSize
     * @return
     */
    public Page<FengForm> queryFormListByKey(String argKey,Integer argCurrPage, Integer argPageSize);

    /**
     * 跟据表单设计ID查询设计数据
     * @param argFormId
     * @return
     */
    public String queryFormDesigner(String argFormId);

    /**
     * 跟据表单KEY查询表单
     * @param argKey
     * @return
     */
    public FengForm queryFormByKey(String argKey);

    /**
     * 跟据表单KEY查询激活的表单
     * @param argKey
     * @return
     */
    public FengForm queryActiveFormByKey(String argKey);

    /**
     * 跟据ID查询表单信息
     * @param argId
     * @return
     */
    public FengForm queryFormListById(String argId);

    /**
     * 保存
     * @param argTActFengFormEntity
     * @return
     */
    public FengForm save(TActFengFormEntity argTActFengFormEntity);

    /**
     * 挂起
     * @param argFormId
     */
    public void formSupend(String argFormId);


    /**
     * 激活
     * @param argFormId
     */
    public void formActive(String argFormId);
}